package com.zp.self.module.level_4_算法练习.算法.位图;

/**
 * @author By ZengPeng
 */
public class 力扣_389_找不同 {
    //测试
    public static void main(String[] args) {

        System.out.println(new 力扣_389_找不同().findTheDifference("abcd","abcde"));
        System.out.println(new 力扣_389_找不同().findTheDifference("","y"));
    }

    /**
     * 题目：给定两个字符串 s 和 t ，它们只包含小写字母。
     * 字符串 t 由字符串 s 随机重排，然后在随机位置添加一个字母。
     * 请找出在 t 中被添加的字母。
     *
     *示例 1：
     * 输入：s = "abcd", t = "abcde"
     * 输出："e"
     * 解释：'e' 是那个被添加的字母。
     *
     * 示例 2：
     * 输入：s = "", t = "y"
     * 输出："y"
     *
     * 分析：
     *      1.位图：加加 减减  ，最后不等于0的就是目标字符
     *
     * 边界值 & 注意点：
     *      1.s =""
     **/
    public char findTheDifference(String s, String t) {
        int[] arr = new int[26];
        for (char c : s.toCharArray())
            arr[c-97]+=1;
        for (char c : t.toCharArray())
            arr[c-97]-=1;
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]!=0)return (char)(i+97);
        }
        return 0;
    }
}
